package lambda;
import java.io.File;
import java.io.FileFilter;

/**
 * JDK8之后java支持了lambda表达式这个特性
 * lambda表达式可以用更精简的语法创建匿名内部类,但是实现的接口只能有一个抽象方法,否则无法使用.
 * lambda表达式是编译器认可的,最终会被改为内部类形式编译到class文件中.
 *
 * 语法:
 * (参数列表)->{
 *     方法体
 * }
 */
public class LambdaDemo {
    public static void main(String[] args) {
        //匿名内部类形式创建FileFilter
        FileFilter filter = new FileFilter() {
            public boolean accept(File file) {
                return file.getName().startsWith(".");
            }
        };

        FileFilter filter1 = (File file)->{
            return file.getName().startsWith(".");
        };

        FileFilter filter2 = (file)->{//lambda表达式中参数的类型可以忽略不写
            return file.getName().startsWith(".");
        };



        /*
              lambda表达式方法体中若只有一句代码,则{}可以省略
              如果这句话有return关键字,那么return也要一起省略
         */
        FileFilter filter3 = (file)->file.getName().startsWith(".");




    }
}
